<?xml version="1.0"?>
<doc>
    <assembly>
        <name>Wintellect.Threading.Silverlight</name>
    </assembly>
    <members>
        <member name="T:Wintellect.Threading.SingletonRaceLoser">
            <summary>
            Indicates whether singleton should be created using a double-check 
            locking technique or via an interlocked-compare-exchange technique.
            </summary>
        </member>
        <member name="F:Wintellect.Threading.SingletonRaceLoser.Block">
            <summary>
            If there is a race to create the singleton, the race is 
            resolved by blocking all but one thread.
            </summary>
        </member>
        <member name="F:Wintellect.Threading.SingletonRaceLoser.GC">
            <summary>
            If there is a race to create the singleton, the race is resolved
            by having all threads create the singleton but, when done, only one 
            thread will win and the losing threads will have their singleton GC'd
            </summary>
        </member>
        <member name="T:Wintellect.Threading.Singleton`1">
            <summary>
            This class ensures that only one singleton object is used if mutliple 
            threads race to create one simultaneously.
            </summary>
            <typeparam name="T"></typeparam>
        </member>
        <member name="T:Wintellect.ExceptionArgs">
            <summary>
            A base class that a custom exception would derive from in order to add its own exception arguments.
            </summary>
        </member>
        <member name="P:Wintellect.ExceptionArgs.Message">
            <summary>
            The string message associated with this exception.
            </summary>
        </member>
        <member name="T:Wintellect.Exception`1">
            <summary>
            Represents errors that occur during application execution.
            </summary>
            <typeparam name="T">The type of exception and any additional arguments associated with it.</typeparam>
        </member>
        <member name="M:Wintellect.Exception`1.#ctor">
            <summary>
            Initializes a new instance of the Exception class
            </summary>
        </member>
        <member name="M:Wintellect.Exception`1.#ctor(System.String)">
            <summary>
            Initializes a new instance of the Exception class with a specified error message.
            </summary>
            <param name="message">The error message that explains the reason for the exception.</param>
        </member>
        <member name="M:Wintellect.Exception`1.#ctor(System.String,System.Exception)">
            <summary>
            Initializes a new instance of the Exception class with a specified error message 
            and a reference to the inner exception that is the cause of this exception. 
            </summary>
            <param name="message">The error message that explains the reason for the exception.</param>
            <param name="innerException">The exception that is the cause of the current exception, 
            or a null reference if no inner exception is specified.</param>
        </member>
        <member name="M:Wintellect.Exception`1.#ctor(`0,System.String,System.Exception)">
            <summary>
            Initializes a new instance of the Exception class with additional arguments, 
            a specified error message, and a reference to the inner exception 
            that is the cause of this exception. 
            </summary>
            <param name="args">The exception's additional arguments.</param>
            <param name="message">The error message that explains the reason for the exception.</param>
            <param name="innerException">The exception that is the cause of the current exception, 
            or a null reference if no inner exception is specified.</param>
        </member>
        <member name="M:Wintellect.Exception`1.#ctor(`0,System.String)">
            <summary>
            Initializes a new instance of the Exception class with additional arguments and 
            a specified error message. 
            </summary>
            <param name="args">The exception's additional arguments.</param>
            <param name="message">The error message that explains the reason for the exception.</param>
        </member>
        <member name="M:Wintellect.Exception`1.ToString">
            <summary>
            Creates and returns a string representation of the current exception.
            </summary>
            <returns></returns>
        </member>
        <member name="M:Wintellect.Exception`1.GetHashCode">
            <summary>
            Serves as a hash function for a particular type.
            </summary>
            <returns>A hash code for the current Object.</returns>
        </member>
        <member name="M:Wintellect.Exception`1.Equals(System.Object)">
            <summary>
            Determines whether the specified Object is equal to the current Object.
            </summary>
            <param name="obj">The Object to compare with the current Object. </param>
            <returns>true if the specified Object is equal to the current Object; otherwise, false.</returns>
        </member>
        <member name="P:Wintellect.Exception`1.Args">
            <summary>
            Returns a reference to this exception's additional arguments.
            </summary>
        </member>
        <member name="P:Wintellect.Exception`1.Message">
            <summary>
            Gets a message that describes the current exception.
            </summary>
        </member>
        <member name="T:Wintellect.Threading.InterlockedEx">
            <summary>Provides atomic operations for variables that are shared by multiple threads.</summary>
        </member>
        <member name="M:Wintellect.Threading.InterlockedEx.Morph``2(System.Int32@,``1,Wintellect.Threading.InterlockedEx.Morpher{``0,``1})">
            <summary>Atomically modifies an Int32 value using an algorithm identified by <paramref name="morpher"/>.</summary>
            <typeparam name="TResult">The type of the return value.</typeparam>
            <typeparam name="TArgument">The type of the argument passed to the <paramref name="morpher"/> callback method.</typeparam>
            <param name="target">A reference to the Int32 value that is to be modified atomically.</param>
            <param name="argument">A value of type <typeparamref name="TArgument"/> that will be passed on to the <paramref name="morpher"/> callback method.</param>
            <param name="morpher">The algorithm that modifies the Int32 returning a new Int32 value and another return value to be returned to the caller.</param>
            <returns>The desired Int32 value.</returns>
        </member>
        <member name="M:Wintellect.Threading.InterlockedEx.IfThen(System.Int32@,System.Int32,System.Int32)">
            <summary>Compares two values for equality and, if they are equal, replaces one of the values.</summary>
            <return>Returns true if the value in <paramref name="val"/> was equal the the value of <paramref name="if"/>.</return>
            <param name="value">The destination, whose value is compared with <paramref name="if"/> and possibly replaced with <paramref name="then"/>.</param>
            <param name="if">The value that is compared to the value at <paramref name="val"/>.</param>
            <param name="then">The value that might get placed into <paramref name="val"/>.</param>
        </member>
        <member name="M:Wintellect.Threading.InterlockedEx.IfThen(System.Int32@,System.Int32,System.Int32,System.Int32@)">
            <summary>Compares two values for equality and, if they are equal, replaces one of the values.</summary>
            <remarks>The previous value in <paramref name="value"/> is returned in <paramref name="previousValue"/>.</remarks>
            <return>Returns true if the value in <paramref name="value"/> was equal the the value of <paramref name="if"/>.</return>
            <param name="value">The destination, whose value is compared with <paramref name="if"/> and possibly replaced with <paramref name="then"/>.</param>
            <param name="if">The value that is compared to the value at <paramref name="value"/>.</param>
            <param name="then">The value that might get placed into <paramref name="value"/>.</param>
            <param name="previousValue">The previous value that was in <paramref name="value"/> prior to calling this method.</param>
        </member>
        <member name="M:Wintellect.Threading.InterlockedEx.IfThen``1(``0@,``0,``0)">
            <summary>Compares two values for equality and, if they are equal, replaces one of the values.</summary>
            <return>Returns true if the value in <paramref name="value"/> was equal the the value of <paramref name="if"/>.</return>
            <typeparam name="T">The type to be used for value, if, and then. This type must be a reference type.</typeparam>
            <param name="value">The destination, whose value is compared with <paramref name="if"/> and possibly replaced with <paramref name="then"/>.</param>
            <param name="if">The value that is compared to the value at <paramref name="value"/>.</param>
            <param name="then">The value that might get placed into <paramref name="value"/>.</param>
        </member>
        <member name="M:Wintellect.Threading.InterlockedEx.IfThen``1(``0@,``0,``0,``0@)">
            <summary>Compares two values for equality and, if they are equal, replaces one of the values.</summary>
            <remarks>The previous value in <paramref name="value"/> is returned in <paramref name="previousValue"/>.</remarks>
            <return>Returns true if the value in <paramref name="value"/> was equal the the value of <paramref name="if"/>.</return>
            <typeparam name="T">The type to be used for value, if, and then. This type must be a reference type.</typeparam>
            <param name="value">The destination, whose value is compared with <paramref name="if"/> and possibly replaced with <paramref name="then"/>.</param>
            <param name="if">The value that is compared to the value at <paramref name="value"/>.</param>
            <param name="then">The value that might get placed into <paramref name="value"/>.</param>
            <param name="previousValue">The previous value that was in <paramref name="value"/> prior to calling this method.</param>
        </member>
        <member name="M:Wintellect.Threading.InterlockedEx.Max(System.Int32@,System.Int32)">
            <summary>Increases a value to a new value if the new value is larger.</summary>
            <return>Returns the previous value of <paramref name="target"/>.</return>
            <param name="target">A variable containing the value that might be increased to a new maximum.</param>
            <param name="value">The value that if larger than <paramref name="target"/> will be placed in <paramref name="target"/>.</param>
        </member>
        <member name="M:Wintellect.Threading.InterlockedEx.Min(System.Int32@,System.Int32)">
            <summary>Decreases a value to a new value if the new value is smaller.</summary>
            <return>Returns the previous value of <paramref name="target"/>.</return>
            <param name="target">A variable containing the value that might be decreased to a new minimum.</param>
            <param name="value">The value that if smaller than <paramref name="target"/> will be placed in <paramref name="target"/>.</param>
        </member>
        <member name="M:Wintellect.Threading.InterlockedEx.DecrementIfGreaterThan(System.Int32@,System.Int32)">
            <summary>Decrements a value by 1 if the value is greater than the specified value (usually 0).</summary>
            <return>Returns the previous value of <paramref name="target"/>.</return>
            <param name="target">A variable containing the value that might be decremented.</param>
            <param name="lowValue">The value that target must be greater than in order for the decrement to occur.</param>
        </member>
        <member name="M:Wintellect.Threading.InterlockedEx.AddModulo(System.Int32@,System.Int32,System.Int32)">
            <summary>Decrements a value by 1 if the value is greater than 0.</summary>
            <param name="target">A variable containing the value that might be decremented.</param>
            <param name="value">The value to add to target before calculating the modulo specified in <paramref name="modulo"/>.</param>
            <param name="modulo">The value to use for the modulo operation.</param>
            <returns>Returns the previous value of <paramref name="target"/>.</returns>
        </member>
        <member name="M:Wintellect.Threading.InterlockedEx.And(System.Int32@,System.Int32)">
            <summary>Bitwise ANDs two 32-bit integers and replaces the first integer with the ANDed value, as an atomic operation.</summary>
            <return>Returns the previous value of <paramref name="target"/>.</return>
            <param name="target">A variable containing the first value to be ANDed. The bitwise AND of the two values is stored in <paramref name="target"/>.</param>
            <param name="with">The value to AND with <paramref name="target"/>.</param>
        </member>
        <member name="M:Wintellect.Threading.InterlockedEx.Or(System.Int32@,System.Int32)">
            <summary>Bitwise ORs two 32-bit integers and replaces the first integer with the ORed value, as an atomic operation.</summary>
            <return>Returns the previous value of <paramref name="target"/>.</return>
            <param name="target">A variable containing the first value to be ORed. The bitwise OR of the two values is stored in <paramref name="target"/>.</param>
            <param name="with">The value to OR with <paramref name="target"/>.</param>
        </member>
        <member name="M:Wintellect.Threading.InterlockedEx.Or(System.Int64@,System.Int64)">
            <summary>Bitwise ORs two 64-bit signed integers and replaces the first integer with the ORed value, as an atomic operation.</summary>
            <return>Returns the previous value of <paramref name="target"/>.</return>
            <param name="target">A variable containing the first value to be ORed. The bitwise OR of the two values is stored in <paramref name="target"/>.</param>
            <param name="with">The value to OR with <paramref name="target"/>.</param>
        </member>
        <member name="M:Wintellect.Threading.InterlockedEx.Xor(System.Int32@,System.Int32)">
            <summary>Bitwise XORs two 32-bit integers and replaces the first integer with the XORed value, as an atomic operation.</summary>
            <return>Returns the previous value of <paramref name="target"/>.</return>
            <param name="target">A variable containing the first value to be XORed. The bitwise XOR of the two values is stored in <paramref name="target"/>.</param>
            <param name="with">The value to XOR with <paramref name="target"/>.</param>
        </member>
        <member name="M:Wintellect.Threading.InterlockedEx.BitTestAndSet(System.Int32@,System.Int32)">
            <summary>Turns a bit on and returns whether or not it was on.</summary>
            <return>Returns whether the bit was on prior to calling this method.</return>
            <param name="target">A variable containing the value that is to have a bit turned on.</param>
            <param name="bitNumber">The bit (0-31) in <paramref name="target"/> that should be turned on.</param>
        </member>
        <member name="M:Wintellect.Threading.InterlockedEx.BitTestAndReset(System.Int32@,System.Int32)">
            <summary>Turns a bit off and returns whether or not it was on.</summary>
            <return>Returns whether the bit was on prior to calling this method.</return>
            <param name="target">A variable containing the value that is to have a bit turned off.</param>
            <param name="bitNumber">The bit (0-31) in <paramref name="target"/> that should be turned off.</param>
        </member>
        <member name="M:Wintellect.Threading.InterlockedEx.BitTestAndCompliment(System.Int32@,System.Int32)">
            <summary>Flips an on bit off or and off bit on.</summary>
            <return>Returns whether the bit was on prior to calling this method.</return>
            <param name="target">A variable containing the value that is to have a bit flipped.</param>
            <param name="bitNumber">The bit (0-31) in <paramref name="target"/> that should be flipped.</param>
        </member>
        <member name="M:Wintellect.Threading.InterlockedEx.MaskedAnd(System.Int32@,System.Int32,System.Int32)">
            <summary>Bitwise ANDs two 32-bit integers with a mask replacing the first integer with the ANDed value, as an atomic operation.</summary>
            <return>Returns the previous value of <paramref name="target"/>.</return>
            <param name="target">A variable containing the first value to be ANDed. The bitwise AND of the two values is stored in <paramref name="target"/>.</param>
            <param name="with">The value to AND with <paramref name="target"/>.</param>
            <param name="mask">The value to AND with <paramref name="target"/> prior to ANDing with <paramref name="with"/>.</param>
        </member>
        <member name="M:Wintellect.Threading.InterlockedEx.MaskedOr(System.Int32@,System.Int32,System.Int32)">
            <summary>Bitwise ORs two 32-bit integers with a mask replacing the first integer with the ORed value, as an atomic operation.</summary>
            <return>Returns the previous value of <paramref name="target"/>.</return>
            <param name="target">A variable containing the first value to be ORed. The bitwise OR of the two values is stored in <paramref name="target"/>.</param>
            <param name="with">The value to OR with <paramref name="target"/>.</param>
            <param name="mask">The value to AND with <paramref name="target"/> prior to ORing with <paramref name="with"/>.</param>
        </member>
        <member name="M:Wintellect.Threading.InterlockedEx.MaskedXor(System.Int32@,System.Int32,System.Int32)">
            <summary>Bitwise XORs two 32-bit integers with a mask replacing the first integer with the XORed value, as an atomic operation.</summary>
            <return>Returns the previous value of <paramref name="target"/>.</return>
            <param name="target">A variable containing the first value to be XORed. The bitwise XOR of the two values is stored in <paramref name="target"/>.</param>
            <param name="with">The value to XOR with <paramref name="target"/>.</param>
            <param name="mask">The value to AND with <paramref name="target"/> prior to XORing with <paramref name="with"/>.</param>
        </member>
        <member name="M:Wintellect.Threading.InterlockedEx.MaskedExchange(System.Int32@,System.Int32,System.Int32)">
            <summary>Sets a variable to a specified value as an atomic operation.</summary>
            <return>Returns the previous value of <paramref name="target"/>.</return>
            <param name="target">A variable containing the value to be replaced.</param>
            <param name="mask">The bits to leave unaffected in <paramref name="target"/> prior to ORing with <paramref name="value"/>.</param>
            <param name="value">The value to reaplce <paramref name="target"/> with.</param>
        </member>
        <member name="M:Wintellect.Threading.InterlockedEx.MaskedAdd(System.Int32@,System.Int32,System.Int32)">
            <summary>Adds two integers and replaces the first integer with the sum, as an atomic operation.</summary>
            <return>Returns the previous value of <paramref name="target"/>.</return>
            <param name="target">A variable containing the value to be replaced.</param>
            <param name="value">The value to add to <paramref name="target"/>.</param>
            <param name="mask">The bits in <paramref name="target"/> that should not be affected by adding.</param>
        </member>
        <member name="T:Wintellect.Threading.InterlockedEx.Morpher`2">
            <summary>Identifies a method that morphs the Int32 startValue into a new value, returning it.</summary>
            <typeparam name="TResult">The return type returned by the Morph method.</typeparam>
            <typeparam name="TArgument">The argument type passed to the Morph method.</typeparam>
            <param name="startValue">The initial Int32 value.</param>
            <param name="argument">The argument passed to the method.</param>
            <param name="morphResult">The value returned from Morph when the morpher callback method is successful.</param>
            <returns>The value that the morpher method desires to set the <paramref name="startValue"/> to.</returns>
        </member>
        <member name="T:Wintellect.Threading.AsyncProgModel.SyncGateMode">
            <summary>
            Indicates if the SyncGate should be acquired for exclusive or shared access.
            </summary>
        </member>
        <member name="F:Wintellect.Threading.AsyncProgModel.SyncGateMode.Exclusive">
            <summary>
            Indicates that exclusive access is required.
            </summary>
        </member>
        <member name="F:Wintellect.Threading.AsyncProgModel.SyncGateMode.Shared">
            <summary>
            Indicates that shared access is required.
            </summary>
        </member>
        <member name="T:Wintellect.Threading.AsyncProgModel.SyncGate">
            <summary>
            This class implements a reader/writer lock that never blocks any threads. 
            This class integrates very well with the AsyncEnumerator class.
            </summary>
        </member>
        <member name="M:Wintellect.Threading.AsyncProgModel.SyncGate.#ctor">
            <summary>
            Constructs a SyncGate object.
            </summary>
        </member>
        <member name="M:Wintellect.Threading.AsyncProgModel.SyncGate.#ctor(System.Boolean)">
            <summary>
            Constructs a SyncGate object
            </summary>
            <param name="blockReadersUntilFirstWriteCompletes">Pass true to have readers block until the first writer has created the data that is being protected by the ReaderWriterGate.</param>
        </member>
        <member name="M:Wintellect.Threading.AsyncProgModel.SyncGate.BeginRegion(Wintellect.Threading.AsyncProgModel.SyncGateMode,System.AsyncCallback)">
            <summary>
            Allows the caller to notify the SyncGate that it wants exclusive or shared access to a resource. 
            </summary>
            <param name="mode">Indicates if exclusive or shared access is desired.</param>
            <param name="asyncCallback">The callback method to invoke once access can be granted.</param>
        </member>
        <member name="M:Wintellect.Threading.AsyncProgModel.SyncGate.BeginRegion(Wintellect.Threading.AsyncProgModel.SyncGateMode,System.AsyncCallback,System.Object)">
            <summary>
            Allows the caller to notify the SyncGate that it wants exclusive or shared access to a resource. 
            </summary>
            <param name="mode">Indicates if exclusive or shared access is desired.</param>
            <param name="asyncCallback">The callback method to invoke once access can be granted.</param>
            <param name="asyncState">Additional state to pass to the callback method.</param>
        </member>
        <member name="M:Wintellect.Threading.AsyncProgModel.SyncGate.EndRegion(System.IAsyncResult)">
            <summary>
            Call this method after accessing the resource to notify the SyncGate that it can grant access to other code.
            </summary>
            <param name="result">The IAsyncResult object given to the callback method when access was granted.</param>
        </member>
        <member name="T:Wintellect.Threading.AsyncProgModel.AsyncResult">
            <summary>
            Represents the status of an asynchronous operation that has no return type.
            </summary>
        </member>
        <member name="M:Wintellect.Threading.AsyncProgModel.AsyncResult.#ctor(System.AsyncCallback,System.Object)">
            <summary>
            Constructs an object that identifies an asynchronous operation.
            </summary>
            <param name="asyncCallback">The method that should be executed wehen the operation completes.</param>
            <param name="state">The object that can be obtained via the AsyncState property.</param>
        </member>
        <member name="M:Wintellect.Threading.AsyncProgModel.AsyncResult.#ctor(System.AsyncCallback,System.Object,System.Object)">
            <summary>
            Constructs an object that identifies an asynchronous operation.
            </summary>
            <param name="asyncCallback">The method that should be executed wehen the operation completes.</param>
            <param name="state">The object that can be obtained via the AsyncState property.</param>
            <param name="initiatingObject">Identifies the object that is initiating the asynchronous operation. This object is obtainable via the InitiatingObject property.</param>
        </member>
        <member name="M:Wintellect.Threading.AsyncProgModel.AsyncResult.SetAsCompleted(System.Exception,System.Boolean)">
            <summary>
            Call this method to indicate that the asynchronous operation has completed.
            </summary>
            <param name="exception">If non-null, this argument identifies the exception that occuring while processing the asynchronous operation.</param>
            <param name="completedSynchronously">Indicates whether the operation completed synchronously or asynchronously.</param>
        </member>
        <member name="M:Wintellect.Threading.AsyncProgModel.AsyncResult.EndInvoke">
            <summary>
            Frees up resources used by the asynchronous operation represented by the IAsyncResult passed.
            If the asynchronous operation failed, this method throws the exception.
            </summary>
        </member>
        <member name="M:Wintellect.Threading.AsyncProgModel.AsyncResult.GetAsyncCallbackHelper">
            <summary>
            Returns a single static delegate to a static method that will invoke the desired AsyncCallback
            </summary>
            <returns>The single static delegate.</returns>
        </member>
        <member name="M:Wintellect.Threading.AsyncProgModel.AsyncResult.BeginInvokeOnWorkerThread">
            <summary>
            Returns an IAsyncResult for an operations that was queued to the thread pool.
            </summary>
            <returns>The IAsyncResult.</returns>
        </member>
        <member name="M:Wintellect.Threading.AsyncProgModel.AsyncResult.OnCompleteOperation(System.IAsyncResult)">
            <summary>
            Invokes the callback method when the asynchronous operations completes.
            </summary>
            <param name="result">The IAsyncResult object identifying the asynchronous operation that has completed.</param>
        </member>
        <member name="P:Wintellect.Threading.AsyncProgModel.AsyncResult.InitiatingObject">
            <summary>
            Gets the object passed to the constructor to initate the asynchronous operation.
            </summary>
        </member>
        <member name="P:Wintellect.Threading.AsyncProgModel.AsyncResult.AsyncState">
            <summary>
            Gets a user-defined object that qualifies or contains information about an asynchronous operation.
            </summary>
        </member>
        <member name="P:Wintellect.Threading.AsyncProgModel.AsyncResult.CompletedSynchronously">
            <summary>
            Gets an indication of whether the asynchronous operation completed synchronously.
            </summary>
        </member>
        <member name="P:Wintellect.Threading.AsyncProgModel.AsyncResult.AsyncWaitHandle">
            <summary>
            Gets a WaitHandle that is used to wait for an asynchronous operation to complete.
            </summary>
        </member>
        <member name="P:Wintellect.Threading.AsyncProgModel.AsyncResult.IsCompleted">
            <summary>
            Gets an indication whether the asynchronous operation has completed.
            </summary>
        </member>
        <member name="T:Wintellect.Threading.AsyncProgModel.AsyncEnumerator">
            <summary>
            A class that can drive an iterator asynchronously allowing for scalable and responsive applications and components.
            </summary>
        </member>
        <member name="F:Wintellect.Threading.AsyncProgModel.AsyncEnumerator.MaxDiscardGroup">
            <summary>
            A discard group can be any number from 0 to MaxDiscardGroup.
            </summary>
        </member>
        <member name="M:Wintellect.Threading.AsyncProgModel.AsyncEnumerator.ThrowOnMissingDiscardGroup(System.Boolean)">
            <summary>
            Sets a flag indicating whether the AsyncEnumerator should throw an exception
            if you call a BeginXxx method without calling the End or EndVoid method passing a discard group.
            This method exists to allow some runtime checks to help ensure that you are writing your code correctly. 
            </summary>
            <param name="throw">Pass true to turn checking on; false to turn it off.</param>
        </member>
        <member name="F:Wintellect.Threading.AsyncProgModel.AsyncEnumerator.m_asyncResult">
            <summary>
            The IAsyncResult object that allows the iteration to execute asynchronously
            </summary>
        </member>
        <member name="M:Wintellect.Threading.AsyncProgModel.AsyncEnumerator.#ctor">
            <summary>
            Initializes a new instance of the AsyncEnumerator class.
            </summary>
        </member>
        <member name="M:Wintellect.Threading.AsyncProgModel.AsyncEnumerator.#ctor(System.String)">
            <summary>
            Initializes a new instance of the AsyncEnumerator class identified with a debug tag.
            </summary>
            <param name="debugTag">The desired debug tag name for this AsyncEnumerator object.</param>
        </member>
        <member name="M:Wintellect.Threading.AsyncProgModel.AsyncEnumerator.BeginExecute(System.Collections.Generic.IEnumerator{System.Int32},System.AsyncCallback)">
            <summary>
            Begins executing an interator and returns after the iterator's first yield return statement executes.
            </summary>
            <param name="enumerator">Identifies the iterator method to be driven by the AsyncEnumerator,</param>
            <param name="callback">An optional asynchronous callback, to be called when the iterator completes.</param>
        </member>
        <member name="M:Wintellect.Threading.AsyncProgModel.AsyncEnumerator.BeginExecute(System.Collections.Generic.IEnumerator{System.Int32},System.AsyncCallback,System.Object)">
            <summary>
            Begins executing an interator and returns after the iterator's first yield return statement executes.
            </summary>
            <param name="enumerator">Identifies the iterator method to be driven by the AsyncEnumerator,</param>
            <param name="callback">An optional asynchronous callback, to be called when the iterator completes.</param>
            <param name="state">A user-provided object that distinguishes this particular asynchronous operation from other operations.</param>
        </member>
        <member name="M:Wintellect.Threading.AsyncProgModel.AsyncEnumerator.EndExecute(System.IAsyncResult)">
            <summary>
            Waits for the pending asynchronous operation to complete.
            </summary>
            <param name="result">The reference to the pending asynchronous operation to finish.</param>
        </member>
        <member name="M:Wintellect.Threading.AsyncProgModel.AsyncEnumerator.OnConstructAsyncResult(System.AsyncCallback,System.Object)">
            <summary>
            Called to construct an AsyncResult object with the specified callback function and state.
            </summary>
            <param name="callback">An optional asynchronous callback, to be called when the iterator completes.</param>
            <param name="state">A user-provided object that distinguishes this particular asynchronous operation from other operations.</param>
            <returns>The AsyncResult object.</returns>
        </member>
        <member name="M:Wintellect.Threading.AsyncProgModel.AsyncEnumerator.OnCompleteAsyncResult">
            <summary>
            Called when the asynchronous operation completes.
            </summary>
        </member>
        <member name="M:Wintellect.Threading.AsyncProgModel.AsyncEnumerator.End">
            <summary>
            Pass this to a BegixXxx method's AsyncCallback argument to have the operation
            complete to advance the enumerator. The operation is implicitly part of discard group 0.
            </summary>
        </member>
        <member name="M:Wintellect.Threading.AsyncProgModel.AsyncEnumerator.EnqueueCompletedOpToInbox(System.Object)">
            <summary>
            Called internally when an async operation completes
            </summary>
            <param name="asyncResultOrDiscardableAsyncResult">The IAsyncResult (for a non-discardable) or the DiscardableAsyncResult (for a discardable) operation.</param>
        </member>
        <member name="M:Wintellect.Threading.AsyncProgModel.AsyncEnumerator.TryEnqueueCompletedOpToInbox(Wintellect.Threading.AsyncProgModel.AsyncEnumerator.AsyncResultWrapper)">
            <summary>
            Rejects a completed DiscardableAsyncResult if its group has been discarded; if not rejected, 
            the DiscardableAsyncResult is added to the inbox.
            </summary>
            <param name="asyncResultWrapper">The completed AsyncResultWrapper</param>
            <returns>True if the AsyncResultWrapper was added to the inbox; false if it was rejected.</returns>
        </member>
        <member name="M:Wintellect.Threading.AsyncProgModel.AsyncEnumerator.DequeueAsyncResult">
            <summary>
            Dequeues a completed AsyncResultWrapper's IAsyncResult object from the inbox.
            </summary>
            <returns>The completed DiscardableAsyncResult's IAsyncResult object.</returns>
        </member>
        <member name="M:Wintellect.Threading.AsyncProgModel.AsyncEnumerator.DiscardAsyncResultsBelongingToDiscardedGroups">
            <summary>
            Discards previously-completed DiscardableAsyncResult objects from the inbox if their discard group has been discarded
            </summary>
        </member>
        <member name="M:Wintellect.Threading.AsyncProgModel.AsyncEnumerator.IsDebuggingEnabled">
            <summary>
            Returns true if the EnableDebugging method has ever been called.
            </summary>
            <returns>true if EnableDebugging has ever been called.</returns>
        </member>
        <member name="M:Wintellect.Threading.AsyncProgModel.AsyncEnumerator.EnableDebugSupport">
            <summary>
            Call this method to enable operation debugging support. When enabled, call 
            stacks are captured and recorded when End methods are invoked. As operations
            complete, the call stacks are discarded. Calling ToString on an AsyncEnumerator
            object will shows its tag, the time stamp of the last 'yield return' statement 
            executed and the collection of its outstanding operations (tags and line/file 
            where the End method was called for it). 
            Typically, you'd examine this information in a debugger. Because capturing call 
            stacks hurts performance, you should only enable debugging support to help you 
            solve a problem related to operations that do not complete.
            </summary>
        </member>
        <member name="M:Wintellect.Threading.AsyncProgModel.AsyncEnumerator.GetInProgressList">
            <summary>
            Returns the AsyncEnumerator objects are are in progress of executing an iterator.
            The list returned is sorted. Element 0 identifes the AsyncEnumerator that has been 
            waiting the longest for its operations to complete. The last element has been waiting
            the shortest amount of time. 
            </summary>
            <returns>The sorted list of in-progress AsyncEnumerator objects.</returns>
        </member>
        <member name="M:Wintellect.Threading.AsyncProgModel.AsyncEnumerator.SetOperationTag(System.String)">
            <summary>
            Sets the debug tag name of the next operation that you are initiating as 
            indicated by the netx call to an End method. This method is marked with 
            the [Conditional("AsyncEnumeratorDebug")] attribute.
            </summary>
            <param name="debugOperationTag">The debug tag name for the next operation you are initiating.</param>
        </member>
        <member name="M:Wintellect.Threading.AsyncProgModel.AsyncEnumerator.ToString">
            <summary>
            Returns debug information about the AsyncEnumerator object. The information includes
            the Name (passed in the constructor). If EnableDebugging has been called, then the
            last yield timestamp and source code line/file is also displayed.
            </summary>
            <returns>String contianing helpful debugging information.</returns>
        </member>
        <member name="M:Wintellect.Threading.AsyncProgModel.AsyncEnumerator.DiscardGroup(System.Int32)">
            <summary>
            Discards all operations that are part of the specified discard group from the Inbox.
            </summary>
            <param name="group">The discard group number (0-MaxDiscardGroup).</param>
        </member>
        <member name="M:Wintellect.Threading.AsyncProgModel.AsyncEnumerator.End(System.Int32,Wintellect.Threading.AsyncProgModel.AsyncEnumerator.EndObjectXxx)">
            <summary>
            Pass the result of this method to a BegixXxx method's AsyncCallback argument to have a cancelable operation
            complete to advance the enumerator.
            </summary>
            <param name="group">Identifies an operation sequence number used for cancelation. The number passed must be between 0 and MaxDiscardGroup.</param>
            <param name="callback">The EndXxx method that must be called when this canceled operation eventually completes.</param>
            <returns>The value that should be passed to a BeginXxx method's AsyncCallback argument.</returns>
        </member>
        <member name="M:Wintellect.Threading.AsyncProgModel.AsyncEnumerator.EndVoid(System.Int32,Wintellect.Threading.AsyncProgModel.AsyncEnumerator.EndVoidXxx)">
            <summary>
            Pass the result of this method to a BegixXxx method's AsyncCallback argument to have a cancelable operation
            complete to advance the enumerator.
            </summary>
            <param name="group">Identifies an operation sequence number used for cancelation. The number passed must be between 0 and 63.</param>
            <param name="callback">The EndXxx method that must be called when this canceled operation eventually completes.</param>
            <returns>The value that should be passed to a BeginXxx method's AsyncCallback argument.</returns>
        </member>
        <member name="M:Wintellect.Threading.AsyncProgModel.AsyncEnumerator.SetCancelTimeout(System.Int32,System.Object)">
            <summary>
            Causes a timer to automatically call Cancel.
            </summary>
            <param name="milliseconds">How long to wait before Cancel is called.</param>
            <param name="cancelValue">Identifies the cancelValue to be passed to Cancel.</param>
        </member>
        <member name="M:Wintellect.Threading.AsyncProgModel.AsyncEnumerator.Cancel(System.Object)">
            <summary>
            Tells the iterator to Cancel all of its remaining operations.
            </summary>
            <param name="cancelValue">An arbitrary value that can be examined by the iterator. 
            This value is returned by IsCanceled.</param>
            <returns>Returns True if the calling thread is the first thread to call Cancel (and sets the cancelValue).</returns>
        </member>
        <member name="M:Wintellect.Threading.AsyncProgModel.AsyncEnumerator.IsCanceled">
            <summary>
            An iterator calls this to determine if Cancel has been called (possibly by a timer set by a call to SetCancelTimer).
            </summary>
            <returns>Returns True if Cancel has been called.</returns>
        </member>
        <member name="M:Wintellect.Threading.AsyncProgModel.AsyncEnumerator.IsCanceled(System.Object@)">
            <summary>
            An iterator calls this to determine if Cancel has been called (possibly by a timer set by a call to SetCancelTimer).
            </summary>
            <param name="cancelValue">Returns the cancelValue passed to Cancel.</param>
            <returns>Returns True if Cancel has been called.</returns>
        </member>
        <member name="P:Wintellect.Threading.AsyncProgModel.AsyncEnumerator.SyncContext">
            <summary>
            Gets or sets the SynchronizationContext object that the AsyncEnumerator uses when resuming your iterator.
            All value of null (the default), means that your iterator will execute via various thread pool threads. 
            </summary>
        </member>
        <member name="P:Wintellect.Threading.AsyncProgModel.AsyncEnumerator.LastYieldReturnTimestamp">
            <summary>
            Returns the timestamp at the last 'yield return' statement.
            </summary>
        </member>
        <member name="T:Wintellect.Threading.AsyncProgModel.AsyncEnumerator.EndObjectXxx">
            <summary>
            Identifies an EndXxx method that takes an IAsyncResult and returns some result
            </summary>
            <param name="result">The IAsyncResult of the completion operation.</param>
            <returns>The EndXxx method's return value.</returns>
        </member>
        <member name="T:Wintellect.Threading.AsyncProgModel.AsyncEnumerator.EndVoidXxx">
            <summary>
            Identifies an EndXxx method that takes an IAsyncResult and doesn't return a value
            </summary>
            <param name="result">The IAsyncResult of the completion operation.</param>
        </member>
        <member name="T:Wintellect.Threading.AsyncProgModel.AsyncEnumerator.DiscardableAsyncResult">
            <summary>
            Class that wraps an asynchronous operation and its AsyncCallback method.
            </summary>
        </member>
        <member name="M:Wintellect.Threading.AsyncProgModel.AsyncEnumerator.DiscardableAsyncResult.SelfComplete">
            <summary>
            Called when an DiscardableAsyncResult is being rejected/dicarded to ensure that its EndXxx method is invoked
            </summary>
        </member>
        <member name="T:Wintellect.Threading.AsyncProgModel.AsyncEnumerator.AsyncResultWrapper">
            <summary>
            A ValueType that abstracts an IAsyncResult (used for non-discard group operations) 
            from a DiscardableAsyncResult (used for discard group operation).
            This type makes an IAsyncResult look like a DiscardableAsyncResult object without construction of another object
            </summary>
        </member>
        <member name="T:Wintellect.Threading.AsyncProgModel.AsyncEnumerator.WaitAndInboxCounts">
            <summary>
            This struct contains a single Int32 member that encapsulates the  
            number of items the enumerator is waiting for and the number of 
            completed async operations in the inbox. All members of this type
            manipulate the counters atomically.
            </summary>
        </member>
        <member name="F:Wintellect.Threading.AsyncProgModel.AsyncEnumerator.WaitAndInboxCounts.c_MaxWait">
            <summary>
            Sentinal value used to indicate that a thread determined that 
            it should call MoveNext again to advance the iterator 
            </summary>
        </member>
        <member name="F:Wintellect.Threading.AsyncProgModel.AsyncEnumerator.WaitAndInboxCounts.m_waitAndInboxCounts">
            <summary>
            High 16 bits=number of inbox items to wait for before calling MoveNext
            Low 16 bits=number of items in inbox 
            </summary>
        </member>
        <member name="M:Wintellect.Threading.AsyncProgModel.AsyncEnumerator.WaitAndInboxCounts.#ctor(System.Int32)">
            <summary>
            Constructs a WaitAndInboxCounts instance from an Int32
            </summary>
            <param name="waic">The Int32 instance.</param>
        </member>
        <member name="M:Wintellect.Threading.AsyncProgModel.AsyncEnumerator.WaitAndInboxCounts.ToInt32">
            <summary>
            Converts a WaitAndInboxCounts instance to an Int32
            </summary>
            <returns>The WaitAndInboxCounts object as an Int32.</returns>
        </member>
        <member name="M:Wintellect.Threading.AsyncProgModel.AsyncEnumerator.WaitAndInboxCounts.Initialize">
            <summary>
            Initializes the Wait to the sentinal value because we don't want
            a thread to MoveNext until the iterator has returned a Wait at least once
            </summary>
        </member>
        <member name="M:Wintellect.Threading.AsyncProgModel.AsyncEnumerator.WaitAndInboxCounts.AtomicSetWait(System.UInt16)">
            <summary>
            Atomically updates the number of inbox items the enumerator 
            wants to wait for and returns the new value.
            </summary>
            <param name="numberOpsToWaitFor">The number of asynchronous operations that must complete before the enumerator advances.</param>
            <returns>Returns true if the calling thread met the requirements necessary to call the enumerator's MoveNext method.</returns>
        </member>
        <member name="M:Wintellect.Threading.AsyncProgModel.AsyncEnumerator.WaitAndInboxCounts.AtomicIncrementInbox">
            <summary>
            Atomically updates the number of inbox items the enumerator 
            wants to wait for and returns the new value. 
            </summary>
            <returns>Returns true if the calling thread met the requirements necessary to call the enumerator's MoveNext method.</returns>
        </member>
        <member name="M:Wintellect.Threading.AsyncProgModel.AsyncEnumerator.WaitAndInboxCounts.AtomicDecrementInbox(System.Int32)">
            <summary>
            Atomically subtracts the number of discarded items from the inbox.
            </summary>
            <param name="numRemoved">The number of asynchronous operations that were discarded from the inbox.</param>
        </member>
        <member name="P:Wintellect.Threading.AsyncProgModel.AsyncEnumerator.WaitAndInboxCounts.Wait">
            <summary>
            Gets/Sets the number of items the enumerator is waiting for 
            </summary>
        </member>
        <member name="P:Wintellect.Threading.AsyncProgModel.AsyncEnumerator.WaitAndInboxCounts.Inbox">
            <summary>
            Gets/Sets the number of items in the inbox
            </summary>
        </member>
        <member name="T:Wintellect.Threading.AsyncProgModel.NoEndMethodCalled">
            <summary>
            This class is used when throwing an Exception to indicate 
            that an operation is being discarded but no EndXxx method 
            was specified and so resources are being leaked.
            </summary>
        </member>
        <member name="P:Wintellect.Threading.AsyncProgModel.NoEndMethodCalled.AsyncResult">
            <summary>
            Identifies the IAsyncResult object that was being discarded.
            </summary>
        </member>
        <member name="T:Wintellect.Threading.AsyncProgModel.AsyncEnumerator`1">
            <summary>
            A class that can drive an iterator asynchronously allowing for 
            scalable and responsive applications and components.
            </summary>
            <typeparam name="TResult">The type of result that the iterator method will return.</typeparam>
        </member>
        <member name="M:Wintellect.Threading.AsyncProgModel.AsyncEnumerator`1.#ctor">
            <summary>
            Initializes a new instance of the AsyncEnumerator class.
            </summary>
        </member>
        <member name="M:Wintellect.Threading.AsyncProgModel.AsyncEnumerator`1.EndExecute(System.IAsyncResult)">
            <summary>
            Waits for the pending asynchronous operation to complete.
            </summary>
            <param name="result">The reference to the pending asynchronous operation to finish.</param>
            <returns>The value set in the Result property by the iterator.</returns>
        </member>
        <member name="M:Wintellect.Threading.AsyncProgModel.AsyncEnumerator`1.OnConstructAsyncResult(System.AsyncCallback,System.Object)">
            <summary>
            Called to construct an AsyncResult object with the specified callback function and state.
            </summary>
            <param name="callback">An optional asynchronous callback, to be called when the iterator completes.</param>
            <param name="state">A user-provided object that distinguishes this particular asynchronous operation from other operations.</param>
            <returns>The AsyncResult object.</returns>
        </member>
        <member name="M:Wintellect.Threading.AsyncProgModel.AsyncEnumerator`1.OnCompleteAsyncResult">
            <summary>
            Called when the asynchronous operation completes.
            </summary>
        </member>
        <member name="P:Wintellect.Threading.AsyncProgModel.AsyncEnumerator`1.Result">
            <summary>
            An iterator sets this property to return the value back to code that executed the iterator.
            Code that executed the iterator usually gets this value as the return value from Execute or EndExecute. 
            </summary>
        </member>
        <member name="T:Wintellect.Threading.AsyncProgModel.AsyncResult`1">
            <summary>
            Represents the status of an asynchronous operation that has a return type of type <typeparamref name="TResult"/>.
            </summary>
            <typeparam name="TResult">The type of teh return value</typeparam>
        </member>
        <member name="M:Wintellect.Threading.AsyncProgModel.AsyncResult`1.#ctor(System.AsyncCallback,System.Object)">
            <summary>
            Constructs an object that identifies an asynchronous operation.
            </summary>
            <param name="asyncCallback">The method that should be executed wehen the operation completes.</param>
            <param name="state">The object that can be obtained via the AsyncState property.</param>
        </member>
        <member name="M:Wintellect.Threading.AsyncProgModel.AsyncResult`1.#ctor(System.AsyncCallback,System.Object,System.Object)">
            <summary>
            Constructs an object that identifies an asynchronous operation.
            </summary>
            <param name="asyncCallback">The method that should be executed wehen the operation completes.</param>
            <param name="state">The object that can be obtained via the AsyncState property.</param>
            <param name="initiatingObject">Identifies the object that is initiating the asynchronous operation. This object is obtainable via the InitiatingObject property.</param>
        </member>
        <member name="M:Wintellect.Threading.AsyncProgModel.AsyncResult`1.SetAsCompleted(`0,System.Boolean)">
            <summary>
            Call this method to indicate that the asynchronous operation has completed.
            </summary>
            <param name="result">Indicates the value calculated by the asynchronous operation.</param>
            <param name="completedSynchronously">Indicates whether the operation completed synchronously or asynchronously.</param>
        </member>
        <member name="M:Wintellect.Threading.AsyncProgModel.AsyncResult`1.EndInvoke">
            <summary>
            Frees up resources used by the asynchronous operation represented by the IAsyncResult passed.
            If the asynchronous operation failed, this method throws the exception. If the operation suceeded,
            this method returns the value calculated by the asynchronous operation.
            </summary>
            <returns>The value calculated by the asynchronous operation.</returns>
        </member>
        <member name="M:Wintellect.Threading.AsyncProgModel.AsyncResult`1.GetAsyncCallbackHelper">
            <summary>
            Returns a single static delegate to a static method that will invoke the desired AsyncCallback
            </summary>
            <returns>The single static delegate.</returns>
        </member>
        <member name="M:Wintellect.Threading.AsyncProgModel.AsyncResult`1.BeginInvokeOnWorkerThread">
            <summary>
            Returns an IAsyncResult for an operations that was queued to the thread pool.
            </summary>
            <returns>The IAsyncResult.</returns>
        </member>
        <member name="M:Wintellect.Threading.AsyncProgModel.AsyncResult`1.OnCompleteOperation(System.IAsyncResult)">
            <summary>
            Invokes the callback method when the asynchronous operations completes.
            </summary>
            <param name="result">The IAsyncResult object identifying the asynchronous operation that has completed.</param>
            <returns>The value computed by the asynchronous operation.</returns>
        </member>
        <member name="T:Wintellect.Threading.AsyncProgModel.AsyncResultReflection`1">
            <summary>
            Represents the status of an asynchronous operation that has a return type of type <typeparamref name="TResult"/>.
            </summary>
            <typeparam name="TResult">The type of the operations computed value.</typeparam>
        </member>
        <member name="M:Wintellect.Threading.AsyncProgModel.AsyncResultReflection`1.#ctor(System.AsyncCallback,System.Object,System.Object,System.Reflection.MethodInfo,System.Object[])">
            <summary>
            Constructs an object that identifies an asynchronous operation.
            </summary>
            <param name="asyncCallback">The method that should be executed wehen the operation completes.</param>
            <param name="state">The object that can be obtained via the AsyncState property.</param>
            <param name="target">The object whose instance method should be called. Pass null to invoke a static method.</param>
            <param name="methodInfo">Identifies the static or instance method that should be invoked when the asynchronous operation completes.</param>
            <param name="args">Identifies the arguments that should be passed to the method when the asynchronous operation completes.</param>
        </member>
        <member name="M:Wintellect.Threading.AsyncProgModel.AsyncResultReflection`1.OnCompleteOperation(System.IAsyncResult)">
            <summary>
            Invokes the target's method passing it the specified arguments when the asynchronous operations completes.
            </summary>
            <param name="result">The IAsyncResult object identifying the asynchronous operation that has completed.</param>
            <returns>The value computed by the asynchronous operation.</returns>
        </member>
        <member name="T:Wintellect.Threading.AsyncProgModel.SyncContextAsyncCallback">
            <summary>
            This class invokes an AsyncCallback delegate via a specific SynchronizationContext object.
            </summary>
        </member>
        <member name="M:Wintellect.Threading.AsyncProgModel.SyncContextAsyncCallback.Wrap(System.AsyncCallback,System.Boolean)">
            <summary>
            Wraps the calling thread's SynchronizationContext object around the specified AsyncCallback.
            </summary>
            <param name="callback">The method that should be invoked using 
            the calling thread's SynchronizationContext.</param>
            <param name="send">true if the AsyncCallback should be invoked via send; false if post.</param>
            <returns>The wrapped AsyncCallback delegate.</returns>
        </member>
        <member name="M:Wintellect.Threading.AsyncProgModel.SyncContextAsyncCallback.Wrap(System.AsyncCallback)">
            <summary>
            Wraps the calling thread's SynchronizationContext object around the specified AsyncCallback.
            </summary>
            <param name="callback">The method that should be invoked using 
            the calling thread's SynchronizationContext.</param>
            <returns>The wrapped AsyncCallback delegate.</returns>
        </member>
        <member name="T:Wintellect.Disposer">
            <summary>
            Puts an IDisposable wrapper around a callback method allowing any 
            method to be used with the C# using statement. 
            </summary>
        </member>
        <member name="M:Wintellect.Disposer.#ctor(Wintellect.Disposer.DisposeMethod)">
            <summary>
            Constructs a Dispose object around the specified method.
            </summary>
            <param name="disposeMethod">The method that should be called via Dispose.</param>
        </member>
        <member name="M:Wintellect.Disposer.Dispose">
            <summary>
            Invokes the desired method via this method.
            </summary>
        </member>
        <member name="T:Wintellect.Disposer.DisposeMethod">
            <summary>
            A delegate that matches the signature of IDisposable's Dispose method.
            </summary>
        </member>
        <member name="T:Wintellect.Threading.AsyncProgModel.EventApmOperation`1">
            <summary>
            This class represents an asynchronous operation that will be initiated
            by some method and the operations completes by way of raising an event.
            </summary>
            <typeparam name="TEventArgs">The object passed as the event's second argument. 
            This object is usually of an EventArgs-derived type.</typeparam>
        </member>
        <member name="M:Wintellect.Threading.AsyncProgModel.EventApmOperation`1.EventHandler(System.Object,`0)">
            <summary>
            The event handler that completes the APM operation when invoked.
            </summary>
            <param name="sender">The source of the event.</param>
            <param name="e">An object (usually derived from EventArgs) that contains the event data.</param>
        </member>
        <member name="T:Wintellect.Threading.AsyncProgModel.EventApmFactory`1">
            <summary>
            This class converts a raised event to an IAsyncResult-based APM completion.
            </summary>
        </member>
        <member name="M:Wintellect.Threading.AsyncProgModel.EventApmFactory`1.PrepareOperation(System.AsyncCallback,System.Object)">
            <summary>
            Prepares to initiate an asynchronous operation by setting the desired callback 
            method and state that will be used to completed the operation when the 
            event handler method is invoked.
            </summary>
            <param name="callback">The method to be called when the event is raised.</param>
            <param name="state">The state tobtained via IAsyncResult's AsyncState property.</param>
            <returns>The prepared operation which exposes the event handler method to be registered with the desired event.</returns>
        </member>
        <member name="M:Wintellect.Threading.AsyncProgModel.EventApmFactory`1.PrepareOperation(System.AsyncCallback)">
            <summary>
            Prepares to initiate an asynchronous operation by setting the desired callback 
            method that will be used to completed the operation when the 
            event handler method is invoked.
            </summary>
            <param name="callback">The method to be called when the event is raised.</param>
            <returns>The prepared operation which exposes the event handler method to be registered with the desired event.</returns>
        </member>
        <member name="M:Wintellect.Threading.AsyncProgModel.EventApmFactory`1.EndInvoke(System.IAsyncResult)">
            <summary>
            Returns the object passed as the second argument to the event handler. 
            This is usually an object whose type is derived from System.EventArgs.
            Note that you can use any instance of this type to call EndInvoke; you do not 
            have to use the same instance that you used to call PrepareOperation.
            </summary>
            <param name="result">An IAsyncResult that references the pending operation.</param>
            <returns>The object passed to the event handler.</returns>
        </member>
    </members>
</doc>
